package inge_soft.gestoriusNuevo.persistence.DAO.implementation;

import java.util.List;

import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;

import org.springframework.dao.DataAccessException;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;

import inge_soft.gestoriusNuevo.persistence.DAO.abstraction.ICategoriaDAO;
import inge_soft.gestoriusNuevo.persistence.DAO.abstraction.IEstadoInstitucionDAO;
import inge_soft.gestoriusNuevo.persistence.DAO.abstraction.IInstitucionDAO;
import inge_soft.gestoriusNuevo.persistence.DAO.abstraction.ITipoDomicilioDAO;
import inge_soft.gestoriusNuevo.persistence.entity.implementation.Categoria;
import inge_soft.gestoriusNuevo.persistence.entity.implementation.EstadoInstitucion;
import inge_soft.gestoriusNuevo.persistence.entity.implementation.Institucion;
import inge_soft.gestoriusNuevo.persistence.entity.implementation.TipoDomicilio;
import inge_soft.gestoriusNuevo.persistence.entity.implementation.Usuario;

@Repository("tipoDomicilioDAO")
public class TipoDomicilioDAO implements ITipoDomicilioDAO {

	@PersistenceContext
	private EntityManager entityManager;
	
	public TipoDomicilio buscarEstado(String tipo){
		
		List<TipoDomicilio> estadosPosibles =  obtenerTiposDomicilios();
		TipoDomicilio tipoElegido = null;
		for(TipoDomicilio tipoActual:estadosPosibles){
			if(tipoActual.getTipo().equalsIgnoreCase(tipo)){
				tipoElegido = tipoActual;
			}
		}
		
		return tipoElegido;
	}
	
	//Lista los estados posibles que puede tomar una institucion 
	public List<TipoDomicilio> obtenerTiposDomicilios(){
		return entityManager.createQuery("SELECT p FROM TipoDomicilio p").getResultList();
	}

}
